package com.zbkj.common.request.client;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class DiscoveryRemoteAddRequest {

    @ApiModelProperty(value = "类型，agent/group")
    private String type;

    @ApiModelProperty(value = "作者")
    private String author;

    @ApiModelProperty(value = "关联id，代理id或者知识库id或者群组id")
    private String linkId;

    @ApiModelProperty(value = "标签")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> tag;

    @ApiModelProperty(value = "名称")
    private String title;

    @ApiModelProperty(value = "描述,支持markdown格式")
    private String description;

    @ApiModelProperty(value = "属于哪个套餐的内容")
    private Integer packageLevel;

    @ApiModelProperty(value = "排序")
    private Integer sort;

    @ApiModelProperty(value = "头像的oss地址")
    private String headImg;

    @ApiModelProperty(value = "详情页视频的详细地址")
    private String videoUrl;

    @ApiModelProperty(value = "如果type=group，要传包含的agent")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> agentIds;

    @ApiModelProperty(value = "如果type=group，可以传包含的agent信息")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<DiscoveryRemoteAddRequest> agentsInfo;


    @ApiModelProperty(value = "模型id")
    private String modelId;

    @ApiModelProperty(value = "详情页视频的详细地址")
    private String planningModelId;

    @ApiModelProperty(value = "角色设定")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> roleData;

    @ApiModelProperty(value = "参数配置")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> parameters;

    @ApiModelProperty(value = "用户信息")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> userInfoMap;

    //以下为group参数

    @ApiModelProperty(value = "群组类型")
    private String groupType;

    @ApiModelProperty(value = "提示词")
    private String groupPrompt;

    @ApiModelProperty(value = "属性")
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> properties;

    //如果只想新建 agent或者group，不想在发现页上显示该agent或者group，则将该值传1
    @ApiModelProperty(value = "是否显示在发现页")
    private Integer isShowDiscovery;
} 